Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO


■NESA-FOレジスタ
対象	PC-H98
チップ	NESA-FO
解説  o PC-H98シリーズは、NESA(New Extended Standard Architecture)と名付けら
	れたアーキテクチャを採用している。NESAはおもにバスアーキテクチャであ
	るが、資源を統一的に管理する機構を有している。
      o NESA搭載機の拡張スロット(NESAスロット)には、従来オプションボードを
	使用するためのCバスコネクタ、およびNESA対応オプションボードを使用する
	ためのEバスコネクタを持つ。

	図1: NESAスロットの構造
	--------------------------------------------------------------

	    +--------------------+  +--------------------+
	    |        Eバス       |  |        Eバス       |
	    +--------------------+  +--------------------+
	    +--------------------------------------------+
	--  |                    Cバス                   |  --
	--  +--------------------------------------------+  --ボード面

	* NESAスロットのEバスコネクタとCバスコネクタは、ボード面からの
	  物理的な高さが異なり、Cバスのオプションボードはカードエッヂ
	  コネクタに挿さり、NESA対応ボードはEバスコネクタに接続される。
	* 通常、単にNESAバスと言う場合はEバスコネクタ側に出てきている
	  信号の方を指す。
	--------------------------------------------------------------

      o NESA-FO(NewExtendedStandardArchitecture-FlexibleOption)とはNESAバスに
	接続される各種ハードウェアの環境などを、ソフトウェアから統一的に設定
	するための機構である。NESA-FOはディップスイッチ等による設定を廃し、
	SSP(SystemSetupProgram)やASP(AutoSetupProgram)で自動的にハードェア環境
	を設定するための機能を提供する。
      o NESA-FOレジスタは、CPUのI/O空間にマッピングされる。マッピングアドレス
	は、各拡張スロットやハードディスク専用スロット、本体内蔵デバイスごとに
	一意的に決められ、NESA-FOレジスタ自体の衝突はおきない。同種のNESA対応
	ボードを複数枚実装した場合にも、確実に目的のボードに対してアクセスを
	行う事が可能である。なお、NESA-FOレジスタ自体はI/O空間の8xDnhおよび
	8xEnh、すなわちユーザー解放I/Oアドレス空間を使用している。

	表1: NESA-FOレジスタのマッピング
	-------------------------------------------------------------------
			15       8 7       0
	I/Oアドレス	 1000 nnnn mmmm xxxx
			       |    |    |
			       |    |    +-------- レジスタ番号
			       |    +------------- 物理スロットに対応
			       +------------------ デバイス種別に対応
	-------------------------------------------------------------------

	表2: 物理スロット番号とスロットの対応
	----------------+----------------------------------
	物理スロット番号|スロット名
	----------------+----------------------------------
	00h             |欠番
	01h             |拡張スロット#1
	02h             |拡張スロット#2
	03h             |拡張スロット#3
	04h             |拡張スロット#4
	05h             |リザーブ
	06h             |HDC専用スロット
	07h             |CRTC専用スロット
	08〜0Eh         |リザーブ
	0Fh             |I/O拡張ユニット(Undocumented)
	----------------+----------------------------------

	表3: デバイス種別値とデバイス種別の対応
	----------------+----------------------------------
	デバイス種別値	|デバイス種別
	----------------+----------------------------------
	1101b		|本体内蔵システム専用スロット
	1110b		|拡張ボックス内オプションスロット
	----------------+----------------------------------

      o NESAアーキテクチャでは、Cバスの従来オプションボードのI/Oスレーブ、
	およびNESAバス(Eバス)のオプションボードのために以下のI/O空間の使用
	を許している。

	表4: NESA搭載機でCバスI/Oスレーブとして使用可能なI/Oアドレス
	----------------------------
	xnD0〜xnDFh
	xnE0〜xnEFh
	* nは0000〜0111b
	* xはDon't care
	----------------------------

	表5: NESAオプションボードのI/Oスレーブとして使用可能なI/Oアドレス
	----------------------------
	mnD0〜mnDFh
	mnE0〜mnEFh
	* nは1001〜1111b
	* mは0000〜0111b
	----------------------------

      o NESAアーキテクチャにおける各種オプションボードのための解放I/Oアドレス
	を以下に列挙する。

	表6: I/Oスレーブとして使用可能なI/Oアドレス
	-------------------------------------------------------------
	xnD0〜xnDFh	CバスI/Oスレーブのために解放
	xnE0〜xnEFh	CバスI/Oスレーブのために解放
	8mD0〜8mDFh	NESA-FOレジスタ
	8mE0〜8mEFh	NESA-FOレジスタ
	9nD0〜9nDFh	NESAバスI/Oスレーブのために解放
	9nE0〜9nEFh	NESAバスI/Oスレーブのために解放
	AnD0〜AnDFh	NESAバスI/Oスレーブのために解放
	AnD0〜AnDFh	NESAバスI/Oスレーブのために解放
	BnD0〜BnDFh	NESAバスI/Oスレーブのために解放
	BnD0〜BnDFh	NESAバスI/Oスレーブのために解放
	CnD0〜CnDFh	NESAバスI/Oスレーブのために解放
	CnD0〜CnDFh	NESAバスI/Oスレーブのために解放
	DnD0〜DnDFh	NESAバスI/Oスレーブのために解放
	DnD0〜DnDFh	NESAバスI/Oスレーブのために解放
	EnD0〜EnDFh	NESAバスI/Oスレーブのために解放
	EnD0〜EnDFh	NESAバスI/Oスレーブのために解放
	FnD0〜FnDFh	NESAバスI/Oスレーブのために解放
	FnD0〜FnDFh	NESAバスI/Oスレーブのために解放

	* xはDon't care
	* nは0000〜0111b
	* mは基本的に0000〜0111b。ただし、オプションボード以外のNESA
	  デバイスのNESA-FOレジスタのインタフェースも同様であるため、
	  mは1000〜1111bの値も取りうる。
	-------------------------------------------------------------
関連	0000:0458h bit 7		
	INT 1Fh - Functions C0h
	INT 1Fh - Functions C1h
	INT 1Fh - Functions C2h
	INT 1Fh - Functions C3h
	INT 1Fh - Functions C4h
	INT 1Fh - Functions C5h
	INT 1Fh - Functions C6h
	INT 1Fh - Functions C7h


I/O	8nm0h
名前	NESA-FOレジスタ0
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	レジスタ0リード(機能ID1)
	    bit 7〜0: ボードメーカ・コード1
	    [WRITE]	なし
	■[PAL]
	    [READ]	なし
	    [WRITE]	レジスタ0ライト(機能ID1)

解説  o NESA-FOレジスタ0の読み書きを行う。
      o ボードメーカコードの下位8bitを示す。
関連	I/O 8nm2h


I/O	8nm1h
名前	NESA-FOレジスタ1
機能
	■[E^2PROM]
	    [READ]	レジスタ1リード(データロードレジスタ)
	    bit 7: EDO	E^2PROMからのデータ出力
	    bit 6: ECL	E^2PROMのクロック入力
	    bit 5: ECS	チップセレクト
	    bit 4: EDI	データ入力
	    bit 3〜0: 未使用(0000b)
	    [WRITE]	レジスタ1ライト(データロードレジスタ)
	    bit 7: 0
	    bit 6: ECL	E^2PROMのクロック入力
	    bit 5: ECS	チップセレクト
	    bit 4: EDI	データ入力
	    bit 3〜0: 未使用(0000b)
	■[PROM]
	    [READ]	レジスタ1リード(データロードレジスタ)
	    bit 7〜0: ROM/PALリードデータ
	    [WRITE]	レジスタ1ライト(データロードレジスタ)
	    bit 7: ACC	NESA-FOのアドレスカウンタリセット
	    	1= カウンタにリセットパルスが出る
		0= 通常
	    bit 6〜0: 未使用(000000b)
	■[FD媒体]
	    [READ]	レジスタ1リード(データロードレジスタ)
	    [WRITE]	レジスタ1ライト(データロードレジスタ)
	■[PAL]
	    [READ]	レジスタ1リード(セットアップデータリードバイト1)
	    [WRITE]	なし[PAL]
解説  o NESA-FOレジスタ1の読み書きを行う。
関連	I/O 8nm0h


I/O	8nm2h
名前	NESA-FOレジスタ2
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	レジスタ2リード(機能ID2)
	    bit 7〜0: ボードメーカ・コード2
	    * ボードメーカ・コード1,2は、ボードメーカ名(大文字アルファベット
	      3文字)をアスキーコードにし、それを2バイトに圧縮したもの
	      一般ユーザー用のボードメーカーコード6C00h〜6FFFh
	    [WRITE]	なし
	■[PAL]
	    [READ]	なし
	    [WRITE]	レジスタ2ライト(機能ID2)
解説  o NESA-FOレジスタ2の読み書きを行う。
      o ボードメーカコードの上位8bitを示す。
関連	I/O 8nm0h


I/O	8nm3h
名前	NESA-FOレジスタ3
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ3ライト
	■[PAL]
	    [READ]	レジスタ3リード(セットアップデータリードバイト2)
	    [WRITE]	なし
解説  o NESA-FOレジスタ3に読み書きを行う。
関連	


I/O	8nm4h
名前	NESA-FOレジスタ4
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	レジスタ4リード(機能ID3)
	    bit 7〜0: 製品コード
		ボードに一対一で対応する製品コード
		NEC製のNESAデバイスの製品コードは以下の通りである。
		表	製品コードと製品名の対応例(Undocumented)
		----------+-----------------------------
		製品コード|製品名                       
		----------+-----------------------------
		02h       |PC-H98/70-E02(ESDI 100MB HDD)
		03h       |PC-H98S/8-E02(SCSI 100MB HDD)
		04h       |PC-H98-B02(2MBメモリボード)  
		----------+-----------------------------
	    [WRITE]	なし
	■[PAL]
	    [READ]	なし
	    [WRITE]	レジスタ4ライト(機能ID3)
解説  o NESA-FOレジスタ4に読み書きを行う。
      o ボードに対応した製品コードを示す。
関連	


I/O	8nm5h
名前	NESA-FOレジスタ5
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ5ライト
	■[PAL]
	    [READ]	レジスタ5リード(セットアップデータリードバイト3)
	    [WRITE]	なし
解説  o NESA-FOレジスタ5に読み書きを行う。
関連	


I/O	8nm6h
名前	NESA-FOレジスタ6
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	レジスタ6リード(機能ID4)
	    bit 7〜4: コンプ・コード
	    	* ボードの改版による版数
	    bit 3,2 :ボード区分
	    	11b= 未実装
	    	10b= リザーブ
	    	01b= 新ボード(NESAボード)
	    	00b= 従来ボード(Cバス)
	    bit 1,0: セットアップ情報タイプ
	    	11b= E^2PROM
	    	10b= PROM
	    	01b= PAL
	    	00b= FD媒体または情報なし
	    [WRITE]	なし
	■[PAL]
	    [READ]	なし
	    [WRITE]	レジスタ6ライト(機能ID4)
解説  o NESA-FOレジスタ6に読み書きを行う。
関連	


I/O	8nm7h
名前	NESA-FOレジスタ7
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ7ライト
	■[PAL]
	    [READ]	レジスタ7リード(セットアップデータリードバイト4)
	    [WRITE]	なし
解説  o NESA-FOレジスタ7に読み書きを行う。
関連	


I/O	8nm8h
名前	NESA-FOレジスタ8
機能
	[READ]	レジスタ8リード(ボードコントロール)
	bit 7,6: EINT1,EINT0	割り込みレベルセンス
		
	bit 5,4: INT1,INT0	割り込みレベルセンス(外付け用)
		1= レベル割り込み発生時
		0= レベル割り込み未発生状態(リセット時)

		* オプションボード側のデバイスから入力される割り込み要求信号
		  IN<1,0>の各チャンネルに対するレベルをセンスする。
	bit 3: NMI		NMIセンス
		0= 通常(リセット時NMI未発生状態)
		1= NMI発生中
	bit 2,1: WAIT1,0	NESA-FOレジスタウェイト設定
		00= 0ウェイト(リセット時)
		01= 1ウェイト
		10= 2ウェイト
		11= 3ウェイト
		* ウェイトサイクルの追加を指定する。ただしBIOS ROMへのウェイト
		  指定は除く。
	bit 0: BDE		ボードイネーブル
		0= Disable(リセット時)
		1= Enable

	[WRITE]	レジスタ8ライト(ボードコントロール)
	bit 7〜4: 未使用
	bit 3: NMI		NMIセンス
		0= NMIクリア
		1= NMI保存
	bit 0: BDE		ボードイネーブル
		0= Disable
		1= Enable
		* NESA-FOレジスタへのアクセスを除くボードの機能の有効/無効
		  を設定する。
解説  o NESA-FOレジスタ8に読み書きを行う。
関連	


I/O	8nm9h
名前	NESA-FOレジスタ9
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ9ライト
	■[PAL]
	    [READ]	レジスタ9リード(セットアップデータリードバイト5)
	    [WRITE]	なし
解説  o NESA-FOレジスタ9に読み書きを行う。
関連	


I/O	8nmAh
名前	NESA-FOレジスタA
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ10ライト
	■[PAL]
	    [READ]	なし
	    [WRITE]	レジスタ10ライト(DMA,割り込み,ウェイト数)
	    bit 7〜5: A2〜0	不明
	    	* 折り返し用のポートでNESA-FOチップでは機能しない
	    bit 4: INTE/L		割り込み要求方法
	    	0= レベル(リセット時)
	    	1= エッジ
	    	* オプションボード側のデバイスから入力される割り込み要求信号
	    	  IN<1,0>を、エッジ/レベルどちらの方法で要求するのか設定する。
	    bit 3,2: INTCH11,INTCH10
	    bit 1,0: INTCH01,INTCH00
	    	00b= IR0(リセット時,2チャンネルとも)
	    	01b= IR1
	    	10b= IR2
	    	11b= IR3
	    	* オプションボード側のデバイスから入力される割り込み要求信号
	    	  IN<1,0>をNESAバス側へ出力する割り込み要求信号群IR<3〜0>の
	    	  どの端子に出力するのかを設定する。
解説  o NESA-FOレジスタ10に読み書きを行う。
関連	


I/O	8nmBh
名前	NESA-FOレジスタB
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ11ライト
	■[PAL]
	    [READ]	レジスタ11リード(セットアップデータリードバイト6)
	    [WRITE]	なし
解説  o NESA-FOレジスタ11に読み書きを行う。


I/O	8nmCh
名前	NESA-FOレジスタC
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ12ライト
	■[PAL]
	    [READ]	なし
	    [WRITE]
	    bit 7: IOCS
	    	0= PA<F〜C>/ADEデコード(リセット時)
	    	 (アドレス0nmXh  X:0〜F→ICSアクティブ)
	    	1= PAF/ADEデコード
	    	 (アドレスinmXh  i:0〜7,X:0〜F→ICSアクティブ)
	    	* オプションボード側のI/Oデバイスに出力するI/Oチップセレクト
	    	  信号(ICS)のデコード条件を設定する。
	    bit 6,5: BWAIT1,BWAIT0
	    	00b= 0ウェイト
	    	01b= 1ウェイト
	    	10b= 2ウェイト
	    	11b= 3ウェイト(リセット時)
	    	* BIOS ROM読みだし時のウェイトサイクルの追加を指定する。
	    bit 4: DMAIORW
	    	0= Enable(リセット時)
	    	1= Disable
	    	* DMA時のIOR/IOWの出力の許可/禁止を指定する。
	    bit 3,2: DMATR11,DMATR10	DMA転送モード(DMA ch#1用)
	    bit 1,0: DMATR01,DMATR00	DMA転送モード(DMA ch#0用)
	    	00b= バイト転送モード(リセット時)
	    	01b= ワード転送モード
	    	10b= ダブルワード転送モード
	    	11b= 禁止(DMA転送は行なわれない)
	    	* オプションボード側のデバイスから入力されるDMA要求信号DR<1,0>
	    	  の各チャネルに対する転送モード(バイト/ワード/ダブルワード)
	    	  を設定する。
		  DMA要求をしないチャネルの転送モードは、DMA要求をするチャ
		  ネルの転送モードと一致させること。
解説  o NESA-FOレジスタ12に読み書きを行う。


I/O	8nmDh
名前	NESA-FOレジスタD
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ13ライト
	■[PAL]
	    [READ]	レジスタ13リード(セットアップデータリードバイト7)
	    [WRITE]	なし
解説  o NESA-FOレジスタ13に読み書きを行う。


I/O	8nmEh
名前	NESA-FOレジスタE
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ14ライト
	■[PAL]
	    [READ]	なし
	    [WRITE]	なし
	    bit 7,6	:B1,B0		不明
	    	* 折り返し用のポートでNESA-FOチップでは機能しない
	    bit 5〜3: DMACH12〜10
	    bit 2〜0: DMACH02〜00
	    	000b= RQ0
	    	001b= RQ1
	    	010b= RQ2
	    	011b= RQ3
	    	100b= RQ4
	    	101b= RQ5
	    	110b= RQ6
	    	111b= 設定禁止

		* オプションボード側のデバイスから入力されるDMA要求信号DR<1,0>
		  をNESAバス側へ出力するDMA要求信号群RQ<6〜0>のどの端子に接続
		  するか設定する。
解説  o NESA-FOレジスタ14に読み書きを行う。
関連	


I/O	8nmFh
名前	NESA-FOレジスタF
機能
	■[E^2PROM,PROM,FD媒体]
	    [READ]	なし
	    [WRITE]	レジスタ15ライト
	■[PAL]
	    [READ]	レジスタ15リード(セットアップデータリードバイト8)
	    [WRITE]	なし
解説  o NESA-FOレジスタ15に読み書きを行う。
関連